Conventional computer systems include information about their internal state, such as where software elements are located, where data is maintained for those software elements, and the like, collectively referred to as configuration specification or the configuration file. This is also true of special-purpose computer systems, for example, storage servers such as file servers and network cache servers, which may be implemented as network-attached appliances. Configuration specification may comprise registry settings, as well as one or more files containing configuration parameters. A reference to a configuration file is to be understood to include scenarios where configuration specification is a single file, as well as where configuration information is a collection of data objects.
Managing configuration of a single appliance is relatively straightforward. There are existing tools that allow a user to manage an appliance and to make changes to configuration settings of the appliance remotely via a graphical user interface (GUI) or a command lime interface (CLI). When the number of appliances that need to have their configuration set up and managed increases, it becomes less and less convenient to manage these appliances individually.
Users that have multiple servers may wish to have similar or identical configuration for all of these servers, with the exception of some information that must be unique such as the IP address for a particular server. Performing configuration set up for each server individually may be tedious and time consuming, especially if the number of file servers that need to be configured is large. In another scenario, a user may acquire a new server in addition to its existing array of servers and may need to set up its configuration to match the configuration of the existing servers. Performing the steps of a configuration process for this newly added server, after exact same configuration process has been done at least once before, is inefficient and inconvenient.
A solution for managing configuration information for multiple devices exists for network cache servers, where configuration setting can be created and edited remotely from a centralized appliance management program, as described in the U.S. patent application Ser. No. 09/879,840, entitled “Managing Configuration Information for Multiple Devices.” An appliance management program is a software application running on a dedicated server station that permits centralized monitoring of multiple appliances. Such programs may have discovery capability such that it can search the network and discover file servers and network cache servers. Once an appliance management program discovers a file server or a network cache server, it can monitor activity of the discovered servers and collect performance information using one or more network protocols (e.g., SMP, XML, or HTTP). The appliance management program stores performance information in a database, so that users may access this information via a web browser running on an administrator station. An ability to discover file servers, monitor and collect performance date, and perform trend analysis based on the collected information may be referred as passive management. An ability to manage configuration information may be referred to as active management.
There is a need to provide a method and system to efficiently manage configuration information for multiple file servers.